#编写一个简单的聊天程序；其中一个进程发送文字聊天消息（从键盘输入文字消息）；  另外一个进程接收并打印消息；

from multiprocessing import Manager,Pool
import os,time,random

def reader(q,q2):
    print("reader启动(%s),父进程为(%s)"%(os.getpid(),os.getppid()))
    for i in range(q.qsize()):
        print("reader从Queue获取到消息：%s" % q.get(True))

def writer(q,q2):
    print("writer启动(%s),父进程为(%s)"%(os.getpid(),os.getppid()))
    message=["喂？","在吗？","不在"]
    for i in message:
        q.put(i)

if __name__=="__main__":
    print("(%s) start"%os.getpid())
    q=Manager().Queue() #使用Manager中的Queue来初始化
    q2 = Manager().Queue()  # 使用Manager中的Queue来初始化
    po=Pool()
    #使用阻塞模式创建进程，这样就不需要在reader中使用死循环了，可以让writer完全执行完成后，再用reader去读取
    po.apply(writer,(q,q2))
    po.apply(reader,(q,q2))
    po.close()
    po.join()
    print("(%s) End"%os.getpid())